2008/07/01

GPU 運算

GPU 的設計,基本上就是「對圖形運算最佳化的 CPU」,利用影像每個像素可以獨立計算的特性,以及在計算精確度上的妥協,來換取同時大量的平行計算。這樣的設計,原本是用來減輕 CPU 的負擔,但是隨著技術的成熟,現在似乎有取代 CPU 成為計算主角的趨勢。

上星期聽同事提起的,比利時 University of Antwerp 有人組裝了一台裝了四張雙 GPU 顯示卡的超級桌上型電腦,實驗室的人還拍了短片來介紹,有興趣的可以由此去。硬體的規格主要是 MSI 的 NVIDIA 790i 晶片主機板,四張 MSI 9800GX2,AMD Phenom 9850,四條 2G DDR2,外加聯立的機殼跟 1500W 的電源供應器。執行 3d 運算的效能跟該校在 2005 年以 350 萬歐元購買的 256-node cluster 旗鼓相當。

除了硬體的部份之外, nvidia 的 CUDA (http://www.nvidia.com/object/cuda_home.html#) project 提供了使用 GPU 進行運算的專門編譯器,網站上也收集了目前各種已經發表的應用,以及該應用比只用 CPU 計算增快的倍數。

從 CUDA 收集的資料可以看出,凡是問題本身可以平行處理、精確度誤差不會累積的,計算速度都得到大幅的提昇(從數十倍到百倍),但是以數值積分為主的應用,比方說天氣預報,就只有 1.3 倍的加速。

目前 CUDA 只支援到 float,但是預計年底前可以支援 double precision,屆時再看看能有什麼突破吧!

2 則留言:

etude 提到...

没想到你也关心GPGPU,我从NV的G80推出就开始关注,去年用CUDA写了点程序,还做了点计算速度比较:
http://etude-espace.blogspot.com/

Ting S. Yo 提到...

其實是同事跟我提了才注意的,因為我不是做visualization的,以前需要用到平行計算的 task 因為需要數值積分,其實 GPU 幫不上太大的忙。